#ifndef _LINKED_LIST_
#define _LINKED_LIST_

class LinkedListNode
{
public:
	int data;
	LinkedListNode* next;

	LinkedListNode()
	{}
	
	LinkedListNode(int num)
	{
		data = num;
	}
};

class LinkedList
{
	LinkedListNode *list;
public:
	void InitList();

	void ClearList();

	int GetListLength();

	bool IsListEmpty();

	int GetData(int pos);

	void TranverseList();

	LinkedListNode* FindLinkedListNodeInList(LinkedListNode*node);

	bool UpdateDataInList(int pos,LinkedListNode* node);

	void InsertListFirst(LinkedListNode*node);

	void InsertListLast(LinkedListNode*node);

	bool InsertListPos(int pos,LinkedListNode* node);

	void InsertOrderList(LinkedListNode* node);

	int DeleteListFirst();

	int DeleteListLast();

	int DeleteListPos(int pos);

	bool DeleteListValue(LinkedListNode *node);
};
#endif